# 输入一个递增排序的数组和一个数字S，在数组中查找两个数，使得他们的和正好是S，如果有多对数字的和等于S，输出两个数的乘积最小的。
# 对应每个测试案例，输出两个数，小的先输出。

# 二分查找法：取中间的平均值作为参考点，左右各有一个，如果左边遍历到大于中间值的位置，那就终止循环
def FindNumbersWithSum(array, tsum):
    avg = tsum//2
    res = []
    pos = 0
    for i in array:
        if i>avg:
            pos = array.index(i)#返回第一个最接近avg的元素下标
            break

    for i in array:
        if tsum-i in array[pos:]:
            res.append([i,tsum-i])
        if i>avg:
            break
    if not res:
        return res

    res.sort(key=lambda d:d[0]*d[1])
    return res[0]


print(FindNumbersWithSum([1,2,4,7,11,15],10))
